home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / ptv1n4.arc / TSRED.PRO < prev    next >
Text File  |  1990-09-13  |  2KB  |  72 lines

  1. heap = $2000
  2.  
  3. CONSTANTS
  4.  needsdos_cantreenter = $0005
  5.  swaptoems        = $8000
  6.  swaptofile       = $4000
  7.  kill_signal        = 0
  8.  key_F10     = $44
  9.  leftShift       = $0002           
  10.  
  11. GLOBAL PREDICATES    
  12. %  from the TSR library
  13.  enableResident(string, integer) - (i, i) language c
  14.  stayResident - language c
  15.  enableSwap(integer, string, string, integer) - (i, i, i, o) language c
  16.  installSignal(integer, integer) - (i, i) language c
  17.  signal(integer) - (i)
  18.  installHotkey(integer, integer, integer, integer) - (i, i, i, i) language c
  19.  setStatusHotKey(integer, string) - (i, i) language c
  20.  setKeyboardSense(string) - (i) language c
  21.  saveVideo(integer, integer, integer, integer ) - (i, i, o, o) language c
  22.  wasGraphics language C
  23. %  defined here but called by the library
  24.  hotkey(integer) - (i)
  25.  
  26. DATABASE
  27.  determ file_is(string)
  28.  determ file_buffer_position(string, integer)
  29.  
  30. PREDICATES
  31.  pick_textmode(integer,integer)    
  32.  best_Swap
  33.  
  34. GOAL    comline(Filename),
  35.     existfile(Filename),
  36.     asserta(file_is(Filename)),
  37.     file_str(Filename, Buf),
  38.     asserta(file_buffer_position(Buf, 0)),
  39.     enableResident("pop_edit",0),
  40.     best_Swap,
  41.     installHotKey(1, key_F10, leftShift, needsDos_cantReenter),
  42.     stayResident,!
  43.     ;
  44.     write("must provide filename to edit").
  45. CLAUSES
  46.      hotKey(1) :-
  47.         setStatusHotKey(1,off),
  48.         pick_textmode(Rows,Cols),
  49.         saveVideo(Rows,Cols,_,_),
  50.         makewindow(1, 7,7,"Pop-Edit", 0,0,Rows,Cols),
  51.         retract(file_buffer_position(Buffer, Position)),
  52.         setKeyboardSense(on),
  53.         edit(Buffer,NewBuf,"","","",Position,"",1,1,1,1,NewPos,_),
  54.         asserta(file_buffer_position(NewBuf, NewPos)),
  55.         removewindow,
  56.         setStatusHotKey(1,on).
  57.         
  58.     signal(kill_signal) :-
  59.         file_buffer_position(Buf,_),
  60.         file_is(Name),
  61.         file_str(Name,Buf).
  62.  
  63.     pick_textmode(25,80) :- wasGraphics,!.         % was in a graphics mode
  64.     pick_textmode(Rows,Cols) :- textmode(Rows,Cols).% use current mode
  65.  
  66.     best_Swap :- enableSwap(swapToEms, "","", Status),Status=0,!.
  67.     best_Swap :- enableSwap(swapToFile, "poped.swp","", Status),
  68.             Status=0,!.
  69.     best_Swap.
  70.  
  71.         
  72.